package com.itfitness.googlemappoi.bean;

import java.util.List;

/**
 * 地址的实体类
 */
public class GeocodeAddressBean extends BaseBean{

    private PlusCodeDTO plus_code;
    private List<ResultsDTO> results;

    public PlusCodeDTO getPlus_code() {
        return plus_code;
    }

    public void setPlus_code(PlusCodeDTO plus_code) {
        this.plus_code = plus_code;
    }

    public List<ResultsDTO> getResults() {
        return results;
    }

    public void setResults(List<ResultsDTO> results) {
        this.results = results;
    }

    public static class PlusCodeDTO {
        private String compound_code;
        private String global_code;

        public String getCompound_code() {
            return compound_code;
        }

        public void setCompound_code(String compound_code) {
            this.compound_code = compound_code;
        }

        public String getGlobal_code() {
            return global_code;
        }

        public void setGlobal_code(String global_code) {
            this.global_code = global_code;
        }
    }

    public static class ResultsDTO {
        private List<AddressComponentsDTO> address_components;
        private String formatted_address;
        private ResultsDTO.GeometryDTO geometry;
        private String place_id;
        private ResultsDTO.PlusCodeDTO plus_code;
        private List<String> types;

        public List<AddressComponentsDTO> getAddress_components() {
            return address_components;
        }

        public void setAddress_components(List<AddressComponentsDTO> address_components) {
            this.address_components = address_components;
        }

        public String getFormatted_address() {
            return formatted_address;
        }

        public void setFormatted_address(String formatted_address) {
            this.formatted_address = formatted_address;
        }

        public GeometryDTO getGeometry() {
            return geometry;
        }

        public void setGeometry(GeometryDTO geometry) {
            this.geometry = geometry;
        }

        public String getPlace_id() {
            return place_id;
        }

        public void setPlace_id(String place_id) {
            this.place_id = place_id;
        }

        public PlusCodeDTO getPlus_code() {
            return plus_code;
        }

        public void setPlus_code(PlusCodeDTO plus_code) {
            this.plus_code = plus_code;
        }

        public List<String> getTypes() {
            return types;
        }

        public void setTypes(List<String> types) {
            this.types = types;
        }

        public static class GeometryDTO {
            private ResultsDTO.GeometryDTO.BoundsDTO bounds;
            private ResultsDTO.GeometryDTO.LocationDTO location;
            private String location_type;
            private ResultsDTO.GeometryDTO.ViewportDTO viewport;

            public BoundsDTO getBounds() {
                return bounds;
            }

            public void setBounds(BoundsDTO bounds) {
                this.bounds = bounds;
            }

            public LocationDTO getLocation() {
                return location;
            }

            public void setLocation(LocationDTO location) {
                this.location = location;
            }

            public String getLocation_type() {
                return location_type;
            }

            public void setLocation_type(String location_type) {
                this.location_type = location_type;
            }

            public ViewportDTO getViewport() {
                return viewport;
            }

            public void setViewport(ViewportDTO viewport) {
                this.viewport = viewport;
            }

            public static class BoundsDTO {
                private ResultsDTO.GeometryDTO.BoundsDTO.NortheastDTO northeast;
                private ResultsDTO.GeometryDTO.BoundsDTO.SouthwestDTO southwest;

                public NortheastDTO getNortheast() {
                    return northeast;
                }

                public void setNortheast(NortheastDTO northeast) {
                    this.northeast = northeast;
                }

                public SouthwestDTO getSouthwest() {
                    return southwest;
                }

                public void setSouthwest(SouthwestDTO southwest) {
                    this.southwest = southwest;
                }

                public static class NortheastDTO {
                    private Double lat;
                    private Double lng;

                    public Double getLat() {
                        return lat;
                    }

                    public void setLat(Double lat) {
                        this.lat = lat;
                    }

                    public Double getLng() {
                        return lng;
                    }

                    public void setLng(Double lng) {
                        this.lng = lng;
                    }
                }

                public static class SouthwestDTO {
                    private Double lat;
                    private Double lng;

                    public Double getLat() {
                        return lat;
                    }

                    public void setLat(Double lat) {
                        this.lat = lat;
                    }

                    public Double getLng() {
                        return lng;
                    }

                    public void setLng(Double lng) {
                        this.lng = lng;
                    }
                }
            }

            public static class LocationDTO {
                private Double lat;
                private Double lng;

                public Double getLat() {
                    return lat;
                }

                public void setLat(Double lat) {
                    this.lat = lat;
                }

                public Double getLng() {
                    return lng;
                }

                public void setLng(Double lng) {
                    this.lng = lng;
                }
            }

            public static class ViewportDTO {
                private ResultsDTO.GeometryDTO.ViewportDTO.NortheastDTO northeast;
                private ResultsDTO.GeometryDTO.ViewportDTO.SouthwestDTO southwest;

                public NortheastDTO getNortheast() {
                    return northeast;
                }

                public void setNortheast(NortheastDTO northeast) {
                    this.northeast = northeast;
                }

                public SouthwestDTO getSouthwest() {
                    return southwest;
                }

                public void setSouthwest(SouthwestDTO southwest) {
                    this.southwest = southwest;
                }

                public static class NortheastDTO {
                    private Double lat;
                    private Double lng;

                    public Double getLat() {
                        return lat;
                    }

                    public void setLat(Double lat) {
                        this.lat = lat;
                    }

                    public Double getLng() {
                        return lng;
                    }

                    public void setLng(Double lng) {
                        this.lng = lng;
                    }
                }

                public static class SouthwestDTO {
                    private Double lat;
                    private Double lng;

                    public Double getLat() {
                        return lat;
                    }

                    public void setLat(Double lat) {
                        this.lat = lat;
                    }

                    public Double getLng() {
                        return lng;
                    }

                    public void setLng(Double lng) {
                        this.lng = lng;
                    }
                }
            }
        }

        public static class PlusCodeDTO {
            private String compoundCode;
            private String globalCode;

            public String getCompoundCode() {
                return compoundCode;
            }

            public void setCompoundCode(String compoundCode) {
                this.compoundCode = compoundCode;
            }

            public String getGlobalCode() {
                return globalCode;
            }

            public void setGlobalCode(String globalCode) {
                this.globalCode = globalCode;
            }
        }

        public static class AddressComponentsDTO {
            private String long_name;
            private String short_name;
            private List<String> types;

            public String getLong_name() {
                return long_name;
            }

            public void setLong_name(String long_name) {
                this.long_name = long_name;
            }

            public String getShort_name() {
                return short_name;
            }

            public void setShort_name(String short_name) {
                this.short_name = short_name;
            }

            public List<String> getTypes() {
                return types;
            }

            public void setTypes(List<String> types) {
                this.types = types;
            }
        }
    }
}
